using System;
using System.ComponentModel;

namespace NAsserter
{
    /// <summary>
    /// Hides members from System.Object.
    /// </summary>
    /// <remarks>
    /// This cleans up Autocomplete so that its not crowded with unneeded members.  
    /// This shouldn't be inherited from if you plan on overriding members from System.Object
    /// See Also: http://www.clariusconsulting.net/blogs/kzu/archive/2008/03/10/58301.aspx
    /// </remarks>
    [EditorBrowsable(EditorBrowsableState.Never)]
    public interface IHideObjectMembers
    {
        [EditorBrowsable(EditorBrowsableState.Never)]
        Type GetType();

        [EditorBrowsable(EditorBrowsableState.Never)]
        int GetHashCode();

        [EditorBrowsable(EditorBrowsableState.Never)]
        string ToString();

        [EditorBrowsable(EditorBrowsableState.Never)]
        bool Equals(object obj);
    }
}